import Vue from 'vue'
import App from './App.vue'

import '@/assets/css/reset.css';//引入全局样式
import TypeNav from '@/components/TypeNav/index.vue'
import carouselView from '@/components/Carousel/index';
import Pagination from '@/components/Pagination/index';
//引入路由
import VueRouter from 'vue-router';
import router from '@/router';
//elementUi按需引入
import { Button, MessageBox } from 'element-ui'

import store from '@/store/index.js'
//引入先关的mock数据的文件【需要代码执行一次】
import '@/mock/mockServer';
//引入swiper需要使用的样式[项目当中用到swiper的地方很多，样式引入一次即可
import "swiper/css/swiper.css"
//不使用vuex引入API网络请求,在vm原型上添加API
import * as API from "@/api";
Vue.prototype.$API = API
import VueLazyload from 'vue-lazyload'//图片懒加载插件
import '@/plugins/validate'; //引入表单验证插件
//注册路由
Vue.use(VueRouter)
//注册全局组件，第一个参数为组件名字，第二个参数是什么组件
Vue.component(carouselView.name, carouselView)//注册轮播图全局组件
Vue.component(TypeNav.name, TypeNav)//注册分类三级联动全局组件
Vue.component(Pagination.name, Pagination)//注册分页器全局组件
Vue.config.productionTip = false
Vue.component(Button.name, Button);
Vue.prototype.$alert = MessageBox.alert;
Vue.prototype.$msgbox = MessageBox;
Vue.use(VueLazyload, {
  loading: require('@/assets/1.jpg'),
})
new Vue({
  render: h => h(App),
  router,
  store,

  beforeCreate() {
    Vue.prototype.$bus = this; //全局事件总线
  },
}).$mount('#app')
